home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Merciful 1
/
Merciful - Disc 1.iso
/
software
/
m
/
multi_media_demo_maker
/
multimediademomakerv1.0.dms
/
multimediademomakerv1.0.adf
/
sources
/
Transform.S
< prev
next >
Wrap
Text File
|
1990-11-13
|
6KB
|
292 lines
;-----------------------------------------------------------------------
; Beispiel eines Vektorobjekt-Sourcecodes
;-----------------------------------------------------------------------
; Komplexes transformierendes Vektorobjekt (Anim1)
;-----------------------------------------------------------------------
;(Seka-format)
;Benutzung:
;a (return)
;wi (return)
;name (return)
;start (return)
;end (return)
;Danach kann das Objekt vom Demomaker aus unter "name" eingeladen werden.
;------------------------------------------------------------------------
start:
dc.l "VECT" ;Kennung fuer Objekt!!!
filledob1:
dc.l TESTPOINTS-filledob2
dc.l TESTFLAECHEN-filledob2
dc.w 300
dc.w 0,$8,$a,$c,$44f,$f0f,$0f,$f00 ;8 Farben
dc.b 0 ;0-keine Syncronisation
dc.b 0 ;0-normales Objekt
dc.w 0 ;jetzt ohne Funktion
dc.l 0 ;keine Zusatzroutinen
dc.l 0 ;...
dc.l anim1points-filledob1 ;offset zu Punktstruktur
dc.l anim1flaechen-filledob1 ;offset zu Flaechenstruktur
dc.w 500 ;zoom auf 500
dc.w 0,$44f,$c,$c0c,$f4f,$f44,$c00,$8 ;8 Farben
dc.b 0 ;0-keine Syncronisation
dc.b 1 ;1-komplexes Objekt
dc.w 0 ;0-keine Flaechenumrandung
dc.l vinit-filledob1 ;offset zur Initroutine
dc.l vdo-filledob1 ;offset zur Transformroutine
;Initroutine...
vinit: lea vp1(pc),a1 ;Pointer initialisieren
move.w #1,(a1)
lea anim1p(pc),a2 ;Punkte des 1.Objekts
lea anim2p(pc),a3 ;Punkte des 2.Objekts
move #48,d1 ;Anzahl der Punkte
move.w #20,d5 ;20 Durchlaeufe
move.l 4(a0),a6 ;Routine transadds holen
jsr (a6) ;Transformadds berechnen
bsr transme1
rts
vp1:dc.w 0
;Transformieren...
vdo: move.w vp1(pc),d0 ;Pointer erhoehen
addq.w #1,d0
cmp.w #80,d0 ;Ende erreicht?
blo ohoh
moveq #0,d0 ;auf null setzen
ohoh: lea vp1(pc),a2
move.w d0,(a2)
cmp #20,d0 ;schon 20?
blo nochnich ;warten
cmp #40,d0 ;schon 40?
blo transme1 ;tranformieren
cmp #60,d0 ;schon 60?
blo nochnich ;warten
;zurueck transformieren...
lea anim1points+2(pc),a6;Destination setzen
moveq #48,d0 ;Punktanzahl
move.l 12(a0),a1 ;Routine holen
jsr (a1) ;Zuruecktransformieren
nochnich:rts
;Transformieren...
transme1:lea anim1points+2(pc),a6;Destination setzen
moveq #48,d0 ;Punktanzahl
move.l 8(a0),a1 ;Routine holen
jsr (a1) ;Transformieren
rts
anim1POINTS: ;Punktstruktur, die angezeigt wird...
dc.w 48 ;Punktanzahl
;(die neuen Transformationen werden
;jeden Frame neu hierhin kopiert...)
dc.w 40,0,-30
dc.w 10,0,-10
dc.w 10,0,0
dc.w 30,0,0
dc.w 30,0,10
dc.w 50,0,30
dc.w 28,28,-30
dc.w 7,7,-10
dc.w 7,7,0
dc.w 21,21,0
dc.w 21,21,10
dc.w 35,35,30
dc.w 0,40,-30
dc.w 0,10,-10
dc.w 0,10,0
dc.w 0,30,0
dc.w 0,30,10
dc.w 0,50,30
dc.w -28,28,-30
dc.w -7,7,-10
dc.w -7,7,0
dc.w -21,21,0
dc.w -21,21,10
dc.w -35,35,30
dc.w -40,0,-30
dc.w -10,0,-10
dc.w -10,0,0
dc.w -30,0,0
dc.w -30,0,10
dc.w -50,0,30
dc.w -28,-28,-30
dc.w -7,-7,-10
dc.w -7,-7,0
dc.w -21,-21,0
dc.w -21,-21,10
dc.w -35,-35,30
dc.w 0,-40,-30
dc.w 0,-10,-10
dc.w 0,-10,0
dc.w 0,-30,0
dc.w 0,-30,10
dc.w 0,-50,30
dc.w 28,-28,-30
dc.w 7,-7,-10
dc.w 7,-7,0
dc.w 21,-21,0
dc.w 21,-21,10
dc.w 35,-35,30
anim1FLAECHEN: ;Flaechen des Objektes
dc.w 41
dc.w 4,1,0,1,7,6,0
dc.w 4,4,1,2,8,7,1
dc.w 4,5,2,3,9,8,2
dc.w 4,4,3,4,10,9,3
dc.w 4,1,4,5,11,10,4
dc.w 4,2,6,7,13,12,6
dc.w 4,3,7,8,14,13,7
dc.w 4,6,8,9,15,14,8
dc.w 4,3,9,10,16,15,9
dc.w 4,2,10,11,17,16,10
dc.w 4,1,12,13,19,18,12
dc.w 4,4,13,14,20,19,13
dc.w 4,5,14,15,21,20,14
dc.w 4,4,15,16,22,21,15
dc.w 4,1,16,17,23,22,16
dc.w 4,2,18,19,25,24,18
dc.w 4,3,19,20,26,25,19
dc.w 4,6,20,21,27,26,20
dc.w 4,3,21,22,28,27,21
dc.w 4,2,22,23,29,28,22
dc.w 4,1,24,25,31,30,24
dc.w 4,4,25,26,32,31,25
dc.w 4,5,26,27,33,32,26
dc.w 4,4,27,28,34,33,27
dc.w 4,1,28,29,35,34,28
dc.w 4,2,30,31,37,36,30
dc.w 4,3,31,32,38,37,31
dc.w 4,6,32,33,39,38,32
dc.w 4,3,33,34,40,39,33
dc.w 4,2,34,35,41,40,34
dc.w 4,1,36,37,43,42,36
dc.w 4,4,37,38,44,43,37
dc.w 4,5,38,39,45,44,38
dc.w 4,4,39,40,46,45,39
dc.w 4,1,40,41,47,46,40
dc.w 4,2,42,43,1,0,42
dc.w 4,3,43,44,2,1,43
dc.w 4,6,44,45,3,2,44
dc.w 4,3,45,46,4,3,45
dc.w 4,2,46,47,5,4,46
dc.w 8,7,0,6,12,18,24,30,36,42,0
dc.w 8,7,47,41,35,29,23,17,11,5,47
anim1p: ;Punkte des 1.Objektes
dc.w 40,0,-30
dc.w 10,0,-10
dc.w 10,0,0
dc.w 30,0,0
dc.w 30,0,10
dc.w 50,0,30
dc.w 28,28,-30
dc.w 7,7,-10
dc.w 7,7,0
dc.w 21,21,0
dc.w 21,21,10
dc.w 35,35,30
dc.w 0,40,-30
dc.w 0,10,-10
dc.w 0,10,0
dc.w 0,30,0
dc.w 0,30,10
dc.w 0,50,30
dc.w -28,28,-30
dc.w -7,7,-10
dc.w -7,7,0
dc.w -21,21,0
dc.w -21,21,10
dc.w -35,35,30
dc.w -40,0,-30
dc.w -10,0,-10
dc.w -10,0,0
dc.w -30,0,0
dc.w -30,0,10
dc.w -50,0,30
dc.w -28,-28,-30
dc.w -7,-7,-10
dc.w -7,-7,0
dc.w -21,-21,0
dc.w -21,-21,10
dc.w -35,-35,30
dc.w 0,-40,-30
dc.w 0,-10,-10
dc.w 0,-10,0
dc.w 0,-30,0
dc.w 0,-30,10
dc.w 0,-50,30
dc.w 28,-28,-30
dc.w 7,-7,-10
dc.w 7,-7,0
dc.w 21,-21,0
dc.w 21,-21,10
dc.w 35,-35,30
anim2p: ;Punkte des zweiten Objektes
dc.w 10,0,-30
dc.w 60,0,0
dc.w 30,0,0
dc.w 30,0,20
dc.w 60,0,20
dc.w 10,0,50
dc.w 7,7,-30
dc.w 42,42,0
dc.w 21,21,0
dc.w 21,21,20
dc.w 42,42,20
dc.w 7,7,50
dc.w 0,10,-30
dc.w 0,60,0
dc.w 0,30,0
dc.w 0,30,20
dc.w 0,60,20
dc.w 0,10,50
dc.w -7,7,-30
dc.w -42,42,0
dc.w -21,21,0
dc.w -21,21,20
dc.w -42,42,20
dc.w -7,7,50
dc.w -10,0,-30
dc.w -60,0,0
dc.w -30,0,0
dc.w -30,0,20
dc.w -60,0,20
dc.w -10,0,50
dc.w -7,-7,-30
dc.w -42,-42,0
dc.w -21,-21,0
dc.w -21,-21,20
dc.w -42,-42,20
dc.w -7,-7,50
dc.w 0,-10,-30
dc.w 0,-60,0
dc.w 0,-30,0
dc.w 0,-30,20
dc.w 0,-60,20
dc.w 0,-10,50
dc.w 7,-7,-30
dc.w 42,-42,0
dc.w 21,-21,0
dc.w 21,-21,20
dc.w 42,-42,20
dc.w 7,-7,50
end: